Structuring Adaptive Applications using AspectJ
نویسندگان
چکیده
Computational devices are becoming ubiquitous. Nowadays, with devices such as cellular phones, we can access and manipulate information at anytime, stored anywhere. In this ubiquitous computing scenario, it is common to require from these systems the ability to adapt as a response to changes in their operating environment, being therefore adaptive. However, adaptability often increases the complexity of the development process. One of the problems is that the implementation of adaptive behavior is in many cases tangled with other application concerns, such as GUI, business logic and data manipulation code. This code tangling can lead to understandability and maintainability problems. Aspect-oriented programming can help address the code tangling problem and support the development of adaptive and also adaptable (easy to modify) software, with adequate productivity and quality levels. This dissertation shows how we can use aspects, in particular AspectJ, for structuring adaptive applications, thus minimizing code tangling. AspectJ is a general-purpose aspect-oriented extension to Java developed to provide separation of concerns. In this work, it is used to separate the “adaptability” concern, leading to a more modular design. By using this language, we have identified some good practices for structuring adaptive applications, which were summarized in an architectural pattern called Adaptability Aspects. We chose the Java 2 Micro Edition as our platform to implement several adaptive concerns, primarily because it is targeted to ubiquitous and resource-constrained devices. We have also analyzed another approach for structuring adaptive applications, namely the “Adaptive Object-Model” architectural style. We show how this architectural style can be combined with our pattern, and therefore benefit from the advantages provided by aspects. Consequently, the enhanced AOM systems provide support for more kinds of adaptive behavior, presenting a more understandable code structure, which can improve maintainability. Finally, we evaluate AspectJ for implementing some adaptive requirements in J2ME applications following the Adaptability Aspects pattern. This evaluation compares an implementation using aspects with a pure Object-Oriented solution using GoF patterns, and with a less flexible implementation where the adaptability concerns are not so well isolated. Some of the measures taken were execution time, memory use, application and its code size. Besides measuring these elements, we have also described the gains of aspect-oriented programming for structuring adaptive applications in order to obtain better quality levels in terms of maintainability and reuse.
منابع مشابه
Developing Adaptive J2ME Applications Using AspectJ
This paper evaluates the use of AspectJ, a general-purpose aspectoriented extension to Java, to provide adaptive behavior for J2ME applications in a modularized way. Our evaluation is based on the development of a simple but non-trivial dictionary application where new adaptive behavior was incrementally implemented using AspectJ. Our main contribution is to show that the AspectJ language can b...
متن کاملImplementing Coordinated Error Recovery for Distributed Object-Oriented Systems with AspectJ
Exception handling is a very popular technique for incorporating fault tolerance into software systems. However, its use for structuring concurrent, distributed systems is hindered by the fact that the exception handling models of many mainstream object-oriented programming languages are sequential. In this paper we present an aspect-based framework for incorporating concurrent exception handli...
متن کاملImplementing Coordinated Exception Handling for Distributed Object-Oriented Systems with AspectJ
Exception handling is a very popular technique for incorporating fault tolerance into software systems. However, its use for structuring concurrent, distributed systems is hindered by the fact that the exception handling models of many mainstream object-oriented programming languages are sequential. In this paper we present an aspect-based framework for incorporating concurrent exception handli...
متن کاملAdaptability Aspects: An Architectural Pattern for Structuring Adaptive Applications with Aspects
This paper presents an architectural pattern for structuring adaptive applications using aspectoriented programming in order to obtain separation of concerns. It is composed of known and novel patterns organized so as to provide good maintainability and modularity. 1
متن کاملAdapPE: An Architectural Pattern for Structuring Adaptive Applications with Aspects
This paper presents an architectural pattern for structuring adaptive applications using aspectoriented programming in order to obtain separation of concerns. It is composed of known and novel patterns organized so as to provide good maintainability and modularity. 1
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004